<!--
 * @Author: 刘翔
 * @Date: 2025-08-04 15:39:32
 * @LastEditTime: 2025-09-01 16:37:29
 * @LastEditors: your name
 * @Description: 组合页面8(总权前15医疗组)
 * @FilePath: \建达文件\ts-demo\ts-demo\src\pptHome\pageList\pageType8.vue
-->
<template>
  <div class="page-type-8">
    <DataTableMany ref="table1" v-bind="getTableProps1()" />
  </div>
</template>

<script>
import DataTableMany from '../components/DataTableMany.vue';
export default {
  name: 'pageType8',
  components: {
    DataTableMany,
  },
  props: {
    tableData1: {
      type: Object,
      default: () => ({}),
    },
  },
  methods: {
    getTableProps1() {
      // 表格总宽度
      let pptWidth = 9.3;
      // 一级表头列数(相加)
      let numAll = this.tableData1.columns.columns1.map(item => (item.widthPercent / 100) * pptWidth).reduce((a, b) => a + b, 0);
      // 二级表头列数
      let len2 = this.tableData1.columns.columns2.map(item => item.columns).flat().length;

      return {
        tableData: this.tableData1.data,
        columns: this.tableData1.columns,
        tableParams: {
          headerHeight: 40,
        },
        pptOptions: {
          x: 0.3, // X轴位置
          y: 0.8, // Y轴位置
          h: 4.5, // 高度
          title: {
            // 标题配置
            x: 0.5,
            y: 0.5,
            fontSize: 24,
            color: '363636',
            bold: true,
          },
          table: {
            colW: [...this.tableData1.columns.columns1.map(item => (item.widthPercent / 100) * pptWidth), ...Array(len2).fill((pptWidth - numAll) / len2)],
            // 表格内容配置
            content: {
              fontSize: 8,
              color: '000000',
              bold: true,
            },
            // 表格标题配置
            title: {
              fontSize: 8,
              color: 'ffffff',
            },
            // 表格边框样式
            borderStyle: {
              color: '000000',
            },
            // 表格垂直对齐方式(middle, top, bottom)
            valign: 'middle',
            // 表格水平对齐方式(left, center, right)
            align: 'center',
            // 自动分页
            autoPage: false,
            // 自动分页标题是否显示
            autoPageRepeatHeader: false,
            // 自动分页标题行数
            autoPageHeaderRows: 1,
          },
        },
      };
    },
    exportToPPT(pptx, slide) {
      this.$refs.table1.exportToPPT(pptx, slide);
    },
  },
};
</script>

<style lang="less" scoped>
.page-type-8 {
  width: 100%;
  height: 100%;
}
</style>
